"""
    python中的数据类型深入操作及分支语句
    1.数据类型之间的转换
    2.可变与不可变数据类型
    3.深拷贝和浅拷贝
    4.分支语句
    5.算术运算符
    6.数据类型的布尔值
    7.比较运算符
"""
# 1.数据类型之间的转换
# 使用eval内建函数进行转化
# 前提是字符串原生数据有对应的类型，eval内建函数才可以转化python对应的所有数据类型
# i = eval(input("请输入内容："))
# print(i)
# print(type(i))


# 2.可变与不可变数据类型
str1 = "abc"
# 查看数据的内存地址值：使用id()内建函数
print(id(str1))  # 1751010288368
print(str1)  # 变量的实际值：abc
#
# 修改变量的实际值
str1 = str1.replace("c", "d")
print(id(str1))  # 变量的内存地址值：1751010643824
print(str1)  # abd
# 当修改实际值，内存地址值也变化，那么就是不可变的数据类型

# 可变的数据类型
list1 = [1, 2, 3]
print(id(list1))  # 变量的内存地址值:3246483094272
print(list1)  # [1, 2, 3]
list1.append(6)
print(id(list1))  # 变量的内存地址值:3246483094272
print(list1)  # [1, 2, 3, 6]
# 当修改实际值，内存地址值不变化，那就是可变的数据类型
# 判断一种数据类型是否可变唯一的标准是当变量值发生变化时，内存地址变化就是不可变，内存地址不变就是可变
# 注意点：字典的键只能使用不可变的数据类型
# 字典的值没有要求，任何数据类型都可以

# 3.深拷贝和浅拷贝
from copy import copy

str1 = "abc"
print(str1)  # abc
print(id(str1))  # 1968246596336
print("-" * 100)
str2 = copy(str1)
print(str2)  # abc
print(id(str2))  # 1968246596336
# 拷贝的数据使用的原来数据的内存地址值

# 5.算术运算符
# 平方
print(2 ** 3)  # 8
# 将字符串复制内容100次
print("2"*100)
